Cloud based software development platforms provide developer tools, such as editors, debuggers, compilers, and the like, through a web browser. Developer productivity is enhanced in pure cloud based development platforms by reducing deployment and upgrade hassles, enabling seamless access on any device connected to the internet, promoting enhanced collaboration, and more. However, not all tasks can be performed by a browser, and so hybrid cloud-local development platforms have emerged to provide the benefits of a cloud based platform while retaining some features of running developer tools on a local machine.
Software toolkits are commonly used to enhance developer productivity. Toolkits may contain software libraries, provision of a developer with 3rd party code to leverage in their own project. Toolkits also may include emulators, test harnesses, and other tools used in the software development process. Toolkits have traditionally and manually been downloaded and installed on a developer's computer, and updated as the developer saw fit.
One requirement of hybrid development platforms is that toolkits used locally and in the cloud are required to be compatible and/or updated versions. Otherwise, browser based development tools might reference or link to an incompatible software library, causing a runtime error when toolkits are executed in the local environment. Also, the browser based development tools might be unable to invoke local resources, such as emulators and the like.
One of the benefits of cloud based developer tools is also a hindrance when developer tools are implemented in a hybrid cloud-local development platform, i.e., seamless and often unannounced upgrades of toolkits in the cloud can cause incompatibilities with locally installed toolkits. When an incompatibility occurs, developers are left to determine which toolkits need to be installed/updated, determine the version to update to, and locate, download, and install the proper version. This is a cumbersome and time consuming process.
Therefore, there is a need for an improved framework that addresses the above mentioned challenges.